parallel_linkage Interface

public interface parallel_linkage

Contents


Module Procedures

private function pl_init_containers(lnks, jnts, base, effector, tool) result(rst)

Initializes a new parallel_linkage object.

Arguments

Type IntentOptional Attributes Name
type(link_container), intent(in), dimension(:) :: lnks

The collection of links forming the mechanism.

type(joint), intent(in), dimension(:) :: jnts

The collection of joints connecting the links.

integer(kind=int32), intent(in), optional :: base

The index of the link that is fixed to ground. If not supplied, the first link is used.

integer(kind=int32), intent(in), optional :: effector

The index of the link carrying the end-effector. If not supplied, the last link is used.

real(kind=real64), intent(in), optional :: tool(4,4)

The transformation matrix relating the end-effector coordinate frame to the body frame of the end-effector link. If not supplied, an identity matrix is used.

Return Value type(parallel_linkage)

The resulting parallel_linkage object.

private function pl_init_array(lnks, jnts, base, effector, tool) result(rst)

Initializes a new parallel_linkage object.

Arguments

Type IntentOptional Attributes Name
class(link), intent(in), dimension(:) :: lnks

The collection of links forming the mechanism.

type(joint), intent(in), dimension(:) :: jnts

The collection of joints connecting the links.

integer(kind=int32), intent(in), optional :: base

The index of the link that is fixed to ground. If not supplied, the first link is used.

integer(kind=int32), intent(in), optional :: effector

The index of the link carrying the end-effector. If not supplied, the last link is used.

real(kind=real64), intent(in), optional :: tool(4,4)

The transformation matrix relating the end-effector coordinate frame to the body frame of the end-effector link. If not supplied, an identity matrix is used.

Return Value type(parallel_linkage)

The resulting parallel_linkage object.